package com.mgq.design.strategy.c1;

/**
 * <b>功能：</b>模板模式的模板类<br>
 * <b>Copyright mgq</b>
 * <li>版本&nbsp;&nbsp;&nbsp;&nbsp;修改日期&nbsp;&nbsp;&nbsp;&nbsp;部　　门&nbsp;&nbsp;&nbsp;&nbsp;作　者&nbsp;&nbsp;&nbsp;&nbsp;变更内容</li><hr>
 * <li>v1.0&nbsp;&nbsp;&nbsp;&nbsp;20220331&nbsp;&nbsp;营业后台&nbsp;&nbsp;&nbsp;&nbsp;马广奇&nbsp;&nbsp;&nbsp;&nbsp;创建类</li>
 * <br><br>
 *
 * @author 马广奇
 * @version 2022-03-31 15:16
 */
public abstract class CopyAbstractTemplate implements CopyStrategy {

    /**
     * <b>功能描述：</b>复制执行前操作<br>
     * <b>修订记录：</b><br>
     * <li>20220331&nbsp;&nbsp;|&nbsp;&nbsp;马广奇&nbsp;&nbsp;|&nbsp;&nbsp;创建方法</li><br><br>
     */

    public abstract void before();

    /**
     * <b>功能描述：</b>复制执行后操作<br>
     * <b>修订记录：</b><br>
     * <li>20220331&nbsp;&nbsp;|&nbsp;&nbsp;马广奇&nbsp;&nbsp;|&nbsp;&nbsp;创建方法</li><br><br>
     */
    public abstract void end();


    public void copy(ShopReplication shopReplication) {
        //删除redis中,对应中心下、对应门店下所有的日志
        //shopReplicationLogServiceImpl.deleteRedisProcessLog(shopReplication);
        //加锁
        //插入日志（主日志和redis）
        before();
        handlerCopy(shopReplication);
        end();
        //解锁
    }
}
